<!DOCTYPE html>
<html lang="en">
<head>
  <title>SchemaCrawler Output</title>
  <meta charset="utf-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/>
  <style>

body, p, li, td, th, caption, select, input, strong {
  font-family: "Century Gothic", CenturyGothic, Geneva, sans-serif;
  font-size: 1rem;
  line-height: 1.4rem;
  color: rgb(16, 16, 16);
}

body {
  margin: 1rem 3rem;
}

code, pre, tt {
  font-family: 'Lucida Console', Monaco, 'Courier New', monospace;
  font-size: 1rem;
  line-height: 1.4rem;
  color: rgb(16, 16, 16);
}

hr {
  height: 1px;
  border-width: 1px 0 0 0;
  color: silver;
}

p {
  margin-bottom: 0.5rem;
}

caption {
  border-bottom: 2px solid black;
  padding: 2px 5px;
  text-align: left;
}

h1, h2, h3 {
  font-family: "Palatino Linotype", Georgia, "Times New Roman", serif;
  margin-top: 1rem;
  margin-bottom: 1.5rem;
  font-weight: bold;
}

h1 {
  font-size: 1.6rem;
  line-height: 1.8rem;
}

h2 {
  font-size: 1.4rem;
  line-height: 1.6rem;
}

h3 {
  font-size: 1.2rem;
  line-height: 1.4rem;
}

dl, ul, ol {
  border: 0;
  background-color: #fff;
  margin-left: 1rem;
  padding: 0 0 0 1rem;
}

li {
  margin-top: 0.3rem;
}

table, th, td {
  border: 1px solid rgb(240, 240, 240);
  border-collapse: collapse;
  vertical-align: top;
  padding: 2px;
}

table {
  width: 800px;
  max-width: 1000px;
  min-width: 600px;
}

th {
  font-weight: bold;
  border-bottom: 1px solid rgb(190, 190, 190);
}

blockquote {
  background: #f9f9f9;
  margin: 5px;
  border-left: 10px solid #ccc;
  padding: 0.5rem 10px;
}

blockquote:before {
  color: #ccc;
  font-size: 4rem;
  line-height: 0.1rem;
  margin-right: 0.25rem;
  vertical-align: -0.4rem;
}

blockquote p {
  display: inline;
  background: #f9f9f9;
}

h1 {
  color: maroon;
}

h2 {
  color: darkblue;
}

h3 {
  color: green;
}

a:link, a:visited {
  color: rgb(123, 42, 144);
  text-decoration: none;
}

a:hover, a:active {
  color: rgb(123, 42, 144);
  background-color: rgb(255, 255, 180);
  text-decoration: none;
  border-bottom: 1px solid rgb(123, 42, 144);
  border-radius: 3px;
}

.caption_name {
  font-weight: bold;
  font-style: italic;
}

.caption_description {
  float: right;
}

.name {
  font-weight: bold;
  min-width: 350px;
}

.property_name {
  min-width: 350px;
}

.property_value {
  min-width: 250px;
}

.right {
  text-align: right;
}

.description {
  min-width: 450px;
}

.spacer {
  min-width: 20px;
}

.minwidth {
  min-width: 150px;
}

.definition {
  word-break: normal;
  word-wrap: break-word;
  white-space: pre;
  white-space: -moz-pre-wrap;
  white-space: pre-wrap;
  white-space: pre\9;

  font-family: 'Lucida Console', Monaco, 'Courier New', monospace;
  font-size: 1rem;
  font-weight: 100;

  line-height: 1.2rem;
  color: rgb(16, 16, 16);
}

.remarks {
  word-break: normal;
  word-wrap: break-word;
  white-space: pre;
  white-space: -moz-pre-wrap;
  white-space: pre-wrap;
  white-space: pre\9;
}

td:nth-of-type(1) {
  width: 30px;
}

td.section {
  font-family: "Palatino Linotype", Georgia, "Times New Roman", serif;
  padding-top: 1.5rem;
  padding-bottom: 1rem;
  font-weight: bold;
  font-size: 1.2rem;
  line-height: 1.2rem;
  color: rgb(100, 100, 100);
}

.data_binary {
  font-style: italic;
  color: rgb(64, 64, 64);
}

.data_null {
  font-style: italic;
  color: rgb(64, 64, 64);
  background-color: rgb(240, 240, 240);
}

.data_number {
  text-align: right;
  padding-right: 5px;
}


  </style>
</head>
<body>

<p>&#160;</p>
<h2>Lints</h2>

<table>
	<caption style='background-color: #FFFFFF;'>
		<span class='caption_name'>Database</span>
		<span class='caption_description'>[database]</span>
	</caption>

	<tr>
		<td colspan='3'></td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, medium]</td>
	</tr>
	<tr>
		<td></td>
		<td>column with same name but different data types</td>
		<td>ID [BIGINT, INTEGER]</td>
	</tr>
	<tr>
		<td></td>
		<td>cycles in table relationships</td>
		<td>PUBLIC.FOR_LINT.PUBLICATIONS, PUBLIC.FOR_LINT.WRITERS</td>
	</tr>
</table>
<p>&#160;</p>

<table>


	<caption style='background-color: #F2E7C2;'>
		<span id='extra_pk_6ff01a79' class='caption_name'>PUBLIC.FOR_LINT.EXTRA_PK</span>
		<span class='caption_description'>[table]</span>
	</caption>

	<tr>
		<td colspan='3'></td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, low]</td>
	</tr>
	<tr>
		<td></td>
		<td>empty table</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>should have remarks</td>
		<td>WRITERID, PUBLICATIONID, ID</td>
	</tr>
	<tr>
		<td></td>
		<td>primary key not first</td>
		<td></td>
	</tr>
</table>
<p>&#160;</p>

<table>


	<caption style='background-color: #F2E7C2;'>
		<span id='globalcounts_3c0c9230' class='caption_name'>PUBLIC.FOR_LINT."Global Counts"</span>
		<span class='caption_description'>[table]</span>
	</caption>

	<tr>
		<td colspan='3'></td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, high]</td>
	</tr>
	<tr>
		<td></td>
		<td>no primary key</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>primary key may not be a surrogate</td>
		<td></td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, medium]</td>
	</tr>
	<tr>
		<td></td>
		<td>no non-nullable data columns</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>no indexes</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>spaces in name, or reserved word</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>spaces in name, or reserved word</td>
		<td>Global Count</td>
	</tr>
	<tr>
		<td></td>
		<td>single column</td>
		<td></td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, low]</td>
	</tr>
	<tr>
		<td></td>
		<td>empty table</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>should have remarks</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>should have remarks</td>
		<td>Global Count</td>
	</tr>
</table>
<p>&#160;</p>

<table>


	<caption style='background-color: #F2E7C2;'>
		<span id='publications_6ef89996' class='caption_name'>PUBLIC.FOR_LINT.PUBLICATIONS</span>
		<span class='caption_description'>[table]</span>
	</caption>

	<tr>
		<td colspan='3'></td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, medium]</td>
	</tr>
	<tr>
		<td></td>
		<td>spaces in name, or reserved word</td>
		<td>UPDATE</td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, low]</td>
	</tr>
	<tr>
		<td></td>
		<td>empty table</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>should have remarks</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>should have remarks</td>
		<td>ID, DESCRIPTION, WRITERID, PUBLICATIONDATE, PRICE, UPDATE, PRESS_RELEASE</td>
	</tr>
	<tr>
		<td></td>
		<td>too many binary objects</td>
		<td>PUBLIC.FOR_LINT.PUBLICATIONS."UPDATE", PUBLIC.FOR_LINT.PUBLICATIONS.PRESS_RELEASE</td>
	</tr>
</table>
<p>&#160;</p>

<table>


	<caption style='background-color: #F2E7C2;'>
		<span id='publicationwriters_f68ea883' class='caption_name'>PUBLIC.FOR_LINT.PUBLICATIONWRITERS</span>
		<span class='caption_description'>[table]</span>
	</caption>

	<tr>
		<td colspan='3'></td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, high]</td>
	</tr>
	<tr>
		<td></td>
		<td>primary key may not be a surrogate</td>
		<td></td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, low]</td>
	</tr>
	<tr>
		<td></td>
		<td>empty table</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>should have remarks</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>should have remarks</td>
		<td>PUBLICATIONID, WRITERID</td>
	</tr>
</table>
<p>&#160;</p>

<table>


	<caption style='background-color: #F2E7C2;'>
		<span id='selfreference_836b0b2e' class='caption_name'>PUBLIC.FOR_LINT.SELFREFERENCE</span>
		<span class='caption_description'>[table]</span>
	</caption>

	<tr>
		<td colspan='3'></td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, critical]</td>
	</tr>
	<tr>
		<td></td>
		<td>foreign key self-references primary key</td>
		<td>PUBLIC.FOR_LINT.SELFREFERENCE.FK_SELFREFERENCE</td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, high]</td>
	</tr>
	<tr>
		<td></td>
		<td>redundant index</td>
		<td>PUBLIC.FOR_LINT.SELFREFERENCE.FK_SELFREFERENCE</td>
	</tr>
	<tr>
		<td></td>
		<td>redundant index</td>
		<td>PUBLIC.FOR_LINT.SELFREFERENCE.PK_SELFREFERENCE</td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, low]</td>
	</tr>
	<tr>
		<td></td>
		<td>empty table</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>should have remarks</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>should have remarks</td>
		<td>ID, TITLE</td>
	</tr>
</table>
<p>&#160;</p>

<table>


	<caption style='background-color: #F2E7C2;'>
		<span id='writers_3778840f' class='caption_name'>PUBLIC.FOR_LINT.WRITERS</span>
		<span class='caption_description'>[table]</span>
	</caption>

	<tr>
		<td colspan='3'></td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, high]</td>
	</tr>
	<tr>
		<td></td>
		<td>foreign key data type different from primary key</td>
		<td>PUBLIC.FOR_LINT.WRITERS.FK_WRITERS_PUBLICATION</td>
	</tr>
	<tr>
		<td></td>
		<td>redundant index</td>
		<td>PUBLIC.FOR_LINT.WRITERS.IDX_A1_WRITERS</td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, medium]</td>
	</tr>
	<tr>
		<td></td>
		<td>unique index with nullable columns</td>
		<td>PUBLIC.FOR_LINT.WRITERS.IDX_U_WRITERS</td>
	</tr>
	<tr>
		<td></td>
		<td>column where NULL may be intended</td>
		<td>PUBLIC.FOR_LINT.WRITERS.ADDRESS2</td>
	</tr>
	<tr>
		<td></td>
		<td>column where NULL may be intended</td>
		<td>PUBLIC.FOR_LINT.WRITERS.COUNTRY</td>
	</tr>
	<tr>
		<td></td>
		<td>incrementing columns</td>
		<td>PUBLIC.FOR_LINT.WRITERS.ADDRESS1, PUBLIC.FOR_LINT.WRITERS.ADDRESS2</td>
	</tr>
	<tr>
		<td></td>
		<td>incrementing columns</td>
		<td>PUBLIC.FOR_LINT.WRITERS.PHONE1, PUBLIC.FOR_LINT.WRITERS.PHONE2</td>
	</tr>
	<tr>
		<td></td>
		<td>incrementing columns</td>
		<td>PUBLIC.FOR_LINT.WRITERS.FAX, PUBLIC.FOR_LINT.WRITERS.FAX3</td>
	</tr>
	<tr>
		<td></td>
		<td>incrementing columns</td>
		<td>PUBLIC.FOR_LINT.WRITERS.EMAIL1, PUBLIC.FOR_LINT.WRITERS.EMAIL2</td>
	</tr>
	<tr>
		<td></td>
		<td>incrementing columns</td>
		<td>PUBLIC.FOR_LINT.WRITERS.HOMEEMAIL11, PUBLIC.FOR_LINT.WRITERS.HOMEEMAIL12</td>
	</tr>
	<tr>
		<td></td>
		<td>incrementing columns are not consecutive</td>
		<td>PUBLIC.FOR_LINT.WRITERS.FAX, PUBLIC.FOR_LINT.WRITERS.FAX3</td>
	</tr>
	<tr>
		<td></td>
		<td>incrementing columns don't have the same data-type</td>
		<td>PUBLIC.FOR_LINT.WRITERS.PHONE1, PUBLIC.FOR_LINT.WRITERS.PHONE2</td>
	</tr>
	<tr>
		<td></td>
		<td>incrementing columns don't have the same data-type</td>
		<td>PUBLIC.FOR_LINT.WRITERS.FAX, PUBLIC.FOR_LINT.WRITERS.FAX3</td>
	</tr>
	<tr>
		<td></td>
		<td>incrementing columns don't have the same data-type</td>
		<td>PUBLIC.FOR_LINT.WRITERS.EMAIL1, PUBLIC.FOR_LINT.WRITERS.EMAIL2</td>
	</tr>
	<tr>
		<td colspan='2' class='name'></td>
		<td class='description right'>[lint, low]</td>
	</tr>
	<tr>
		<td></td>
		<td>empty table</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>should have remarks</td>
		<td></td>
	</tr>
	<tr>
		<td></td>
		<td>should have remarks</td>
		<td>ID, FIRSTNAME, LASTNAME, ADDRESS1, ADDRESS2, CITY, STATE, POSTALCODE, COUNTRY, PHONE1, PHONE2, EMAIL1, EMAIL2, FAX, FAX3, HOMEEMAIL11, HOMEEMAIL12, PUBLICATION_ID</td>
	</tr>
</table>
<p>&#160;</p>

</body>
</html>
